#include "stm32f10x.h"
#include "stm32f10x_gpio.h"
void Delay10ms()//延时10毫秒
{
	unsigned char i ,j;
	i =117;
	j = 184;
	do
	{
		while(--j);
	}
	while(--i);
}

void Delay(int ms)
{
	while(ms--)
	{
		Delay10ms();
	}
}




int main(void)
{

	
#if 0
//使用宏定义方式配置寄存输出----------------------------------------------------------------	
//配置时钟使能
RCC->APB2ENR  |= (1<<3);//打开GPIOB时钟
rcc_apb2_enab |= (1<<6);//打开GPIOE时钟
//进行端口寄存器模式配置
GPIOB->CRL |= (1<<20);                //GPIOB的端口配置低寄存器(使用结构体指针访问地址)
*(unsigned int*)0x40011800 |= (1<<20);//GPIOE的端口配置低寄存器(使用传统51绝对地址方式访问)	
//进行寄存器输出
		while(1)
		{
			GPIOB->ODR &=~(1<<5);//LED0灯亮
				Delay(10);//延时0.1秒
			GPIOB->ODR |=(1<<5);//LED0灯灭
				Delay(10);//延时0.1秒
			*(unsigned int*)0x4001180C &=~(1<<5);//让LED1一直亮 GPIOE5
		};	
#endif 0
//使用自己写的函数来配置LED0灯--------------------------------------------------------			
//配置时钟使能
RCC->APB2ENR  |= (1<<3);//打开GPIOB时钟
rcc_apb2_enab |= (1<<6);//打开GPIOE时钟

//进行端口寄存器模式配置
GPIOB->CRL |= (1<<20);                //GPIOB的端口配置低寄存器(使用结构体指针访问地址)	
*(unsigned int*)0x40011800 |= (1<<20);//GPIOE的端口配置低寄存器(使用传统51绝对地址方式访问)	
//进行寄存器输出
		while(1)
		{
			GPIO_ReSet(GPIOB,GPIO_Pin_5);//LED0灯亮(函数方式点亮)
				Delay(10);//延时0.1秒
			GPIO_Set  (GPIOB,GPIO_Pin_5);//LED0灯灭
				Delay(10);//延时0.1秒
			*(unsigned int*)0x4001180C &=~(1<<5);//让LED1一直亮 GPIOE5
		};
//-------------------------------分割线------------------------------------------			
#elif 1
//------------------------------使用GPIO结构体和初始化函数------------------------------------------------------

		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
		
}



